package com.wanwu.channel.core.enums;

/**
 * 支付宝支付交易状态
 */
public enum AliPayTradeStatusEnum {

    WAIT_BUYER_PAY("交易创建, 待付款"),
    TRADE_CLOSED("交易超时关闭、全额退款"),
    TRADE_SUCCESS("交易支付成功"),
    /**
     * 商户签约的产品不支持退款功能的前提下，买家付款成功后交易状态直接变更为TRADE_FINISHED；
     * 或者，商户签约的产品支持退款功能的前提下，交易已经成功并且已经超过可退款期限，交易状态也会变更为TRADE_FINISHED
     */
    TRADE_FINISHED("交易结束，不可退款");

    private String desc;

    AliPayTradeStatusEnum(String desc) {
        this.desc = desc;
    }

    public static AliPayTradeStatusEnum getTradeStatusEnum(String code) {
        for (AliPayTradeStatusEnum v : AliPayTradeStatusEnum.values()) {
            if (code.equals(v.name())) {
                return v;
            }
        }
        return null;
    }

    public static boolean checkSuc(String code) {
        return TRADE_SUCCESS.name().equals(code) || TRADE_FINISHED.name().equals(code);
    }

    public boolean check(String code) {
        return this.name().equals(code);
    }

    public static boolean checkClosed(String code) {
        return TRADE_CLOSED.name().equals(code);
    }

    public String getDesc() {
        return desc;
    }

}
